package com.atlin.project.model.vo;

import com.atlin.project.model.domain.task.UserTasks;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.io.Serializable;
import java.util.Date;

/**
 * 示例表
 *
 * @TableName userTasks
 */
@Data
public class UserTasksVO implements Serializable {

    
    /**
     * 任务ID
     */
    private Long id;

    /**
     * 任务标题
     */
    private String title;

    /**
     * 任务描述
     */
    private String description;

    /**
     * 任务状态 pending, in_progress, completed, archived
     */
    private String status;

    /**
     * 任务优先级 low, medium, high, urgent
     */
    private String priority;

    /**
     * 任务截止日期
     */
    private Date dueDate;

    /**
     * 任务创建时间
     */
    private Date createdTime;

    /**
     * 任务更新时间
     */
    private Date updateTime;

    /**
     * 任务完成时间
     */
    private Date completedTime;

    /**
     * 预计耗时（分钟）
     */
    private Integer estimatedTime;

    /**
     * 父任务ID（支持子任务）
     */
    private Long parentTaskId;

    /**
     * 包装类转对象
     *
     * @param userTasksVO
     * @return
     */
    public static UserTasks voToObj(UserTasksVO userTasksVO) {
        if (userTasksVO == null) {
            return null;
        }
        UserTasks userTasks = new UserTasks();
        BeanUtils.copyProperties(userTasksVO, userTasks);

        return userTasks;
    }


    /**
     * 对象转包装类
     *
     * @param userTasks
     * @return
     */
    public static UserTasksVO objToVo(UserTasks userTasks) {
        if (userTasks == null) {
            return null;
        }
        UserTasksVO userTasksVO = new UserTasksVO();
        BeanUtils.copyProperties(userTasks, userTasksVO);
        return userTasksVO;
    }

    private static final long serialVersionUID = 1L;
}